home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue67 / express / SimpleDemoUnit.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-01-31  |  2.2 KB  |  91 lines

  1. unit SimpleDemoUnit;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, Parser10;
  8.  
  9. type
  10.   TSimpleDemoForm = class(TForm)
  11.     Parser: TParser;
  12.     ExpressionEdit: TEdit;
  13.     ResultEdit: TEdit;
  14.     CalcBtn: TButton;
  15.     Label1: TLabel;
  16.     Label2: TLabel;
  17.     DefineFuncsBtn: TButton;
  18.     DefineVarBtn: TButton;
  19.     RemoveFuncsBtn: TButton;
  20.     procedure CalcBtnClick(Sender: TObject);
  21.     procedure DefineFuncsBtnClick(Sender: TObject);
  22.     procedure RemoveFuncsBtnClick(Sender: TObject);
  23.     procedure DefineVarBtnClick(Sender: TObject);
  24.   private
  25.     { Private declarations }
  26.   public
  27.     { Public declarations }
  28.   end;
  29.  
  30. var
  31.   SimpleDemoForm: TSimpleDemoForm;
  32.  
  33. implementation
  34.  
  35. {$R *.DFM}
  36.  
  37. procedure TSimpleDemoForm.CalcBtnClick(Sender: TObject);
  38. begin
  39.   // Setting the expression
  40.   Parser.Expression := ExpressionEdit.Text;
  41.   // Evaluating the expression
  42.   ResultEdit.Text := FloatToStr(Parser.Value);
  43. end;
  44.  
  45. procedure TestOneParam(AnOp: POperation);
  46. begin
  47.   with AnOp^ do
  48.     dest^ := arg1^*3;
  49. end;
  50.  
  51. procedure TestTwoParam(AnOp: POperation);
  52. begin
  53.   with AnOp^ do
  54.     dest^ := arg1^ + arg2^*2;
  55. end;
  56.  
  57. procedure TSimpleDemoForm.DefineFuncsBtnClick(Sender: TObject);
  58. begin
  59.   // Adding functions
  60.   Parser.AddFunctionOneParam('OneParam', TestOneParam);
  61.   Parser.AddFunctionTwoParam('TwoParam', TestTwoParam);
  62. end;
  63.  
  64. procedure TSimpleDemoForm.RemoveFuncsBtnClick(Sender: TObject);
  65. begin
  66.   // Removing functions
  67.   Parser.ClearFunction('OneParam');
  68.   Parser.ClearFunction('TwoParam');
  69. end;
  70.  
  71. procedure TSimpleDemoForm.DefineVarBtnClick(Sender: TObject);
  72. var
  73.   MyVar2: PParserFloat;
  74. begin
  75.   // Setting variables - slowly
  76.   Parser.Variable['MyVar1'] := 3.14;
  77.   MyVar2 := Parser.SetVariable('MyVar2', 0);
  78.   // Setting variables - fast
  79.   MyVar2^ := 50;
  80.   // Setting built-in variables, fast
  81.   Parser.A := 60;
  82.   // Getting variables - slowly
  83.   ShowMessage('Value of MyVar1 = ' + FloatToStr(Parser.Variable['MyVar1']));
  84.   // Getting variables - fast
  85.   ShowMessage('Value of MyVar2 = ' + FloatToStr(MyVar2^));
  86.   // Getting built-in variables, fast
  87.   ShowMessage('Value of A = ' + FloatToStr(Parser.A));
  88. end;
  89.  
  90. end.
  91.